package com.ruoyi.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 充值缴费记录表
 * </p>
 *
 * @author wwq
 * @since 2024-05-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("wsd_payment_records")
public class WsdPaymentRecords implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 序号，自增ID
     */
    @TableId(value = "payment_id", type = IdType.AUTO)
    private Long paymentId;

    /**
     * 订单号
     */
    private String transactionId;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 学生ID
     */
    private Long studentId;

    /**
     * 学校名称
     */
    private String schoolName;

    /**
     * 学校id
     */
    private Long schoolsId;

    /**
     * 年级名称
     */
    private String gradeName;

    /**
     * 班级名称
     */
    private String className;

    /**
     * 学生姓名
     */
    private String studentName;

    /**
     * 证件号
     */
    private String identityNumber;

    /**
     * 家长手机号
     */
    private String parentMobile;

    /**
     * 充值类型 (0: 微信, 1: 支付宝, 2: 现金) 默认0
     */
    private Integer rechargeType;

    /**
     * 充值时间
     */
    private LocalDateTime rechargeTime;

    /**
     * 缴费账单名称
     */
    private String feeAccountName;

    /**
     * 缴费项目名称
     */
    private String feeItemName;

    /**
     * 缴费类型 (0: 学生餐费用, 1: 其他费用) 默认0
     */
    private Integer feeType;

    /**
     * 缴费金额
     */
    private BigDecimal totalFee;

    /**
     * 餐费类型 (0: 早餐, 1: 午餐, 2: 晚餐)
     */
    private Integer mealType;

    /**
     * 是否支付 (0: 未支付, 1: 已支付)
     */
    private Boolean isPaid;

    /**
     * 缴费时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime feeTime;

    /**
     *'是否已处理 (0: 未处理, 1: 已处理)'
     */
    private Integer isProcessed;

    /**
     * 订单回调接口
     */
    private String notifyUrl;

    /**
     * 下单code
     */
    private String code;

    /**
     * 微信opentid
     */
    private String opentId;

    /**
     * 终端ip
     */
    private String spbillCreateIp;

    /**
     * 支付流水号
     */
    private String payId;

    /**
     * 富友清算日(资金实际到达账户的日期)
     */
    private String reservedFySettleDt;

    /** 学期配置ID，自增ID */
    private Long configId;

    /**
     * 账户余额金额 减去已退款金额
     */
    private BigDecimal balanceFee;

    private Long classId;
    private Long gradeId;
}
